Docker compose |
您所在的位置:网站首页 › docker compose 端口 › Docker compose |
Docker compose-实现多服务、nginx负载均衡、--scale参数解决端口冲突问题
问题:scale参数端口冲突解决方法:nginx实现多服务、负载均衡修改docker-compose.yml配置新增nginx本地配置文件验证启动容器查看容器状态访问web应用
问题:scale参数端口冲突
当使用如下docker-compose.yml配置,启动web为3个服务时,会出现端口冲突问题: version: '3' services: web: build: ../ ports: - "5000:5000" redis: image: redis:3.0.7启动命令: docker-compose up --scale web=3分析,ports: -“5000:5000”,主机5000端口映射到容器内的5000端口,如果多个启动容器,就会出现端口真占用冲突的问题 解决方法:nginx实现多服务、负载均衡注意:原始项目构造请看Docker Compose的安装教程、使用教程示例的使用教程。 修改docker-compose.yml配置如下: version: '3' services: web: build: ../ expose: - "5000" redis: image: redis:3.0.7 ngixn: image: nginx:latest volumes: - ../nginx_conf/nginx.conf:/etc/nginx/nginx.conf:ro ports: - "4000:4000"对比上面的2个docker-compose.yml,修改的地方在于: web服务去掉ports参数,改为expose参数,解释:web容器内的5000端口不对主机开放,但是对关联的其他服务容器开放,其他容器可以访问web容器的5000端口增加nginx配置 valumes:挂载数据卷,将../nginx_conf/nginx.conf文件挂载到容器内的/etc/nginx/nginx.conf文件,nginx容器将以../nginx_conf/nginx.conf启动nginxports:主机4000端口映射到nginx容器内的4000端口 新增nginx本地配置文件在目录../nginx_conf/下新增nginx.conf文件,如下: user nginx; events { worker_connections 1000; } http { server { listen 4000; location / { proxy_pass http://web:5000; } } }监听容器的4000端口,将请求转发到web服务的5000端口 验证 启动容器 docker-compose up --scale web=3输出如下: 如下 访问虚机的4000端口,按照预期将会看到出现3个不同的容器名,如下 总结:Docker compose通过nginx实现了多服务、负载均衡场景,并不会出现端口冲突问题! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |